home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1986-01-01 | 5.1 KB | [ TEXT/EDIT]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
id metadata key value macFileType [ TEXT] macFileCreator [ EDIT]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 05 61 63 63 2e 63 00 | 00 00 00 00 00 00 00 00 |..acc.c.|........| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......| |00000050| 00 00 00 00 00 0f ef 00 | 00 03 84 9a 3e 6a 3e 9a |........|....>j>.| |00000060| 3e 6a 3e 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |>j>.....|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 e7 fc 00 00 |........|........| |00000080| 23 64 65 66 69 6e 65 20 | 53 41 56 45 41 34 20 36 |#define |SAVEA4 6| |00000090| 39 34 0d 0d 65 78 74 65 | 72 6e 20 69 6e 74 20 5f |94..exte|rn int _| |000000a0| 47 4c 42 4c 53 49 5a 45 | 3b 0d 0d 65 78 74 65 72 |GLBLSIZE|;..exter| |000000b0| 6e 20 61 63 63 6f 70 65 | 6e 28 29 3b 0d 65 78 74 |n accope|n();.ext| |000000c0| 65 72 6e 20 61 63 63 70 | 72 69 6d 65 28 29 3b 0d |ern accp|rime();.| |000000d0| 65 78 74 65 72 6e 20 61 | 63 63 63 74 6c 28 29 3b |extern a|ccctl();| |000000e0| 0d 65 78 74 65 72 6e 20 | 61 63 63 73 74 61 74 75 |.extern |accstatu| |000000f0| 73 28 29 3b 0d 65 78 74 | 65 72 6e 20 61 63 63 63 |s();.ext|ern accc| |00000100| 6c 6f 73 65 28 29 3b 0d | 0d 5f 61 63 63 6f 70 65 |lose();.|._accope| |00000110| 6e 28 29 0d 7b 0d 20 20 | 20 20 73 74 61 74 69 63 |n().{. | static| |00000120| 20 5f 63 61 6c 6c 61 63 | 63 28 29 3b 0d 20 20 20 | _callac|c();. | |00000130| 20 69 6e 74 20 6f 69 64 | 3b 09 2f 2a 20 6f 77 6e | int oid|;./* own| |00000140| 65 64 20 72 65 73 6f 75 | 72 63 65 20 69 64 20 6e |ed resou|rce id n| |00000150| 75 6d 62 65 72 20 2a 2f | 0d 20 20 20 20 61 73 6d |umber */|. asm| |00000160| 20 7b 0d 09 74 73 74 2e | 6c 09 32 30 28 41 31 29 | {..tst.|l.20(A1)| |00000170| 09 20 20 20 20 3b 73 65 | 65 20 69 66 20 6f 70 65 |. ;se|e if ope| |00000180| 6e 28 29 20 61 6c 72 65 | 61 64 79 20 63 61 6c 6c |n() alre|ady call| |00000190| 65 64 0d 09 62 65 71 09 | 63 6f 6e 74 09 20 20 20 |ed..beq.|cont. | |000001a0| 20 3b 64 6f 20 69 6e 69 | 74 20 73 74 75 66 66 20 | ;do ini|t stuff | |000001b0| 69 66 20 6e 6f 74 0d 09 | 70 65 61 09 61 63 63 6f |if not..|pea.acco| |000001c0| 70 65 6e 28 50 43 29 0d | 09 6a 73 72 09 5f 63 61 |pen(PC).|.jsr._ca| |000001d0| 6c 6c 61 63 63 28 50 43 | 29 0d 09 61 64 64 71 2e |llacc(PC|)..addq.| |000001e0| 6c 09 23 34 2c 41 37 0d | 09 75 6e 6c 6b 09 41 36 |l.#4,A7.|.unlk.A6| |000001f0| 0d 09 72 74 73 0d 0d 20 | 20 20 20 63 6f 6e 74 3a |..rts.. | cont:| |00000200| 0d 09 6d 6f 76 65 6d 2e | 6c 20 44 31 2d 44 35 2f |..movem.|l D1-D5/| |00000210| 41 32 2d 41 34 2c 2d 28 | 41 37 29 20 20 3b 73 61 |A2-A4,-(|A7) ;sa| |00000220| 76 65 20 72 65 67 69 73 | 74 65 72 73 20 74 68 61 |ve regis|ters tha| |00000230| 74 20 6d 69 67 68 74 20 | 62 65 20 75 73 65 64 0d |t might |be used.| |00000240| 09 6d 6f 76 65 2e 6c 20 | 20 53 41 56 45 41 34 2c |.move.l | SAVEA4,| |00000250| 2d 28 41 37 29 09 3b 73 | 61 76 65 20 6f 6c 64 20 |-(A7).;s|ave old | |00000260| 41 34 20 76 61 6c 75 65 | 0d 09 6d 6f 76 65 2e 6c |A4 value|..move.l| |00000270| 09 41 30 2c 20 2d 28 41 | 37 29 20 20 20 3b 70 75 |.A0, -(A|7) ;pu| |00000280| 73 68 20 70 61 72 61 6d | 65 74 65 72 73 20 66 6f |sh param|eters fo| |00000290| 72 20 75 73 65 72 20 72 | 6f 75 74 69 6e 65 0d 09 |r user r|outine..| |000002a0| 6d 6f 76 65 2e 6c 09 41 | 31 2c 20 2d 28 41 37 29 |move.l.A|1, -(A7)| |000002b0| 0d 0d 09 6d 6f 76 65 2e | 77 20 20 32 34 28 41 31 |...move.|w 24(A1| |000002c0| 29 2c 20 44 30 20 20 3b | 63 6f 6d 70 75 74 65 20 |), D0 ;|compute | |000002d0| 6f 77 6e 65 64 20 72 65 | 73 6f 75 72 63 65 20 49 |owned re|source I| |000002e0| 44 20 6e 75 6d 62 65 72 | 0d 09 6e 65 67 09 44 30 |D number|..neg.D0| |000002f0| 09 20 20 20 20 3b 64 72 | 69 76 65 72 20 72 65 66 |. ;dr|iver ref| |00000300| 6e 75 6d 20 3d 20 2d 49 | 44 20 2d 20 31 0d 20 20 |num = -I|D - 1. | |00000310| 20 20 09 73 75 62 71 20 | 20 20 20 23 31 2c 44 30 | .subq | #1,D0| |00000320| 0d 09 61 73 6c 2e 77 09 | 23 35 2c 20 44 30 0d 09 |..asl.w.|#5, D0..| |00000330| 6f 72 69 2e 77 20 20 20 | 23 30 78 63 30 30 30 2c |ori.w |#0xc000,| |00000340| 20 44 30 0d 09 6d 6f 76 | 65 2e 77 20 20 44 30 2c | D0..mov|e.w D0,| |00000350| 20 6f 69 64 28 41 36 29 | 0d 09 0d 09 73 75 62 71 | oid(A6)|....subq| |00000360| 2e 6c 09 23 34 2c 41 37 | 09 20 20 20 20 3b 6c 6f |.l.#4,A7|. ;lo| |00000370| 61 64 20 69 6e 20 74 68 | 65 20 73 74 72 69 6e 67 |ad in th|e string| |00000380| 73 0d 09 6d 6f 76 65 2e | 6c 09 23 27 44 41 54 41 |s..move.|l.#'DATA| |00000390| 27 2c 2d 28 41 37 29 0d | 09 6d 6f 76 65 09 44 30 |',-(A7).|.move.D0| |000003a0| 2c 2d 28 41 37 29 20 20 | 20 20 3b 73 74 72 69 6e |,-(A7) | ;strin| |000003b0| 67 20 49 44 20 64 65 70 | 65 6e 64 73 20 6f 6e 20 |g ID dep|ends on | |000003c0| 44 52 56 52 20 49 44 0d | 09 64 63 2e 77 09 30 78 |DRVR ID.|.dc.w.0x| |000003d0| 61 39 61 30 09 20 20 20 | 20 3b 67 65 74 72 65 73 |a9a0. | ;getres| |000003e0| 6f 75 72 63 65 28 29 0d | 09 63 6c 72 2e 6c 09 44 |ource().|.clr.l.D| |000003f0| 34 09 20 20 20 20 3b 73 | 74 72 69 6e 67 20 72 65 |4. ;s|tring re| |00000400| 73 6f 75 72 63 65 20 6d | 61 79 20 6e 6f 74 20 65 |source m|ay not e| |00000410| 78 69 73 74 2c 20 73 6f | 20 73 65 74 20 73 69 7a |xist, so| set siz| |00000420| 65 20 74 6f 20 30 2e 0d | 09 74 73 74 2e 6c 09 28 |e to 0..|.tst.l.(| |00000430| 41 37 29 09 20 20 20 20 | 3b 6d 6f 76 65 61 20 64 |A7). |;movea d| |00000440| 6f 65 73 6e 27 74 20 73 | 65 74 20 63 6f 6e 64 69 |oesn't s|et condi| |00000450| 74 69 6f 6e 20 63 6f 64 | 65 73 0d 09 6d 6f 76 65 |tion cod|es..move| |00000460| 61 2e 6c 20 28 41 37 29 | 2b 2c 41 33 20 20 20 20 |a.l (A7)|+,A3 | |00000470| 3b 68 61 6e 64 6c 65 20 | 74 6f 20 73 74 72 69 6e |;handle |to strin| |00000480| 67 20 72 65 73 6f 75 72 | 63 65 20 69 6e 20 41 33 |g resour|ce in A3| |00000490| 0d 09 62 65 71 09 6e 6f | 64 61 74 61 0d 0d 09 73 |..beq.no|data...s| |000004a0| 75 62 71 2e 6c 09 23 34 | 2c 41 37 0d 09 6d 6f 76 |ubq.l.#4|,A7..mov| |000004b0| 65 2e 6c 09 41 33 2c 2d | 28 41 37 29 0d 09 64 63 |e.l.A3,-|(A7)..dc| |000004c0| 2e 77 09 30 78 61 39 61 | 35 09 20 20 20 20 3b 73 |.w.0xa9a|5. ;s| |000004d0| 69 7a 65 72 65 73 6f 75 | 72 63 65 28 29 0d 09 6d |izeresou|rce()..m| |000004e0| 6f 76 65 2e 6c 09 28 41 | 37 29 2b 2c 44 34 20 20 |ove.l.(A|7)+,D4 | |000004f0| 20 20 3b 73 69 7a 65 20 | 6f 66 20 73 74 72 69 6e | ;size |of strin| |00000500| 67 20 72 65 73 6f 75 72 | 63 65 20 69 6e 20 44 34 |g resour|ce in D4| |00000510| 0d 0d 20 20 20 20 6e 6f | 64 61 74 61 3a 0d 09 64 |.. no|data:..d| |00000520| 63 2e 77 09 30 78 33 61 | 33 63 09 20 20 20 20 3b |c.w.0x3a|3c. ;| |00000530| 6d 6f 76 65 2e 77 20 23 | 5f 47 4c 42 4c 53 49 5a |move.w #|_GLBLSIZ| |00000540| 45 2c 44 35 0d 09 64 63 | 2e 77 09 5f 47 4c 42 4c |E,D5..dc|.w._GLBL| |00000550| 53 49 5a 45 0d 09 65 78 | 74 2e 6c 09 44 35 0d 09 |SIZE..ex|t.l.D5..| |00000560| 6e 65 67 2e 6c 09 44 35 | 09 20 20 20 20 3b 5f 47 |neg.l.D5|. ;_G| |00000570| 4c 42 4c 53 49 5a 45 20 | 69 73 20 6e 65 67 61 74 |LBLSIZE |is negat| |00000580| 69 76 65 0d 09 6d 6f 76 | 65 2e 6c 09 44 35 2c 44 |ive..mov|e.l.D5,D| |00000590| 30 0d 09 61 64 64 2e 6c | 09 44 34 2c 44 30 09 20 |0..add.l|.D4,D0. | |000005a0| 20 20 20 3b 61 64 64 20 | 73 69 7a 65 20 6f 66 20 | ;add |size of | |000005b0| 73 74 72 69 6e 67 20 73 | 70 61 63 65 0d 09 64 63 |string s|pace..dc| |000005c0| 2e 77 09 30 78 61 37 32 | 32 09 20 20 20 20 3b 6e |.w.0xa72|2. ;n| |000005d0| 65 77 68 61 6e 64 6c 65 | 28 29 20 26 20 63 6c 65 |ewhandle|() & cle| |000005e0| 61 72 20 74 6f 20 7a 65 | 72 6f 73 0d 09 64 63 2e |ar to ze|ros..dc.| |000005f0| 77 09 30 78 61 30 32 39 | 09 20 20 20 20 3b 68 6c |w.0xa029|. ;hl| |00000600| 6f 63 6b 28 29 0d 0d 09 | 6d 6f 76 65 2e 6c 09 28 |ock()...|move.l.(| |00000610| 41 37 29 2c 41 31 20 20 | 20 20 20 3b 73 61 76 65 |A7),A1 | ;save| |00000620| 20 69 6e 20 64 63 74 6c | 73 74 6f 72 61 67 65 0d | in dctl|storage.| |00000630| 09 6d 6f 76 65 2e 6c 09 | 41 30 2c 32 30 28 41 31 |.move.l.|A0,20(A1| |00000640| 29 0d 0d 09 6d 6f 76 65 | 2e 6c 09 28 41 30 29 2c |)...move|.l.(A0),| |00000650| 41 34 0d 09 61 64 64 61 | 2e 6c 09 44 35 2c 41 34 |A4..adda|.l.D5,A4| |00000660| 09 20 20 20 20 3b 41 34 | 20 69 73 20 62 65 74 77 |. ;A4| is betw| |00000670| 65 65 6e 20 73 74 72 69 | 6e 67 73 20 61 6e 64 20 |een stri|ngs and | |00000680| 67 6c 6f 62 61 6c 73 0d | 09 6d 6f 76 65 2e 6c 20 |globals.|.move.l | |00000690| 20 41 34 2c 53 41 56 45 | 41 34 0d 09 74 73 74 2e | A4,SAVE|A4..tst.| |000006a0| 6c 09 44 34 09 20 20 20 | 20 3b 69 66 20 6e 6f 20 |l.D4. | ;if no | |000006b0| 73 74 72 69 6e 67 73 2c | 20 74 68 65 6e 20 64 6f |strings,| then do| |000006c0| 6e 27 74 20 62 6c 6f 63 | 6b 20 6d 6f 76 65 0d 09 |n't bloc|k move..| |000006d0| 62 65 71 09 6e 6f 64 61 | 74 61 32 0d 09 6d 6f 76 |beq.noda|ta2..mov| |000006e0| 65 2e 6c 09 28 41 33 29 | 2c 41 30 20 20 20 20 20 |e.l.(A3)|,A0 | |000006f0| 3b 73 74 61 72 74 20 6f | 66 20 73 74 72 69 6e 67 |;start o|f string| |00000700| 20 72 65 73 6f 75 72 63 | 65 0d 09 6d 6f 76 65 2e | resourc|e..move.| |00000710| 6c 09 41 34 2c 41 31 09 | 20 20 20 20 3b 73 74 72 |l.A4,A1.| ;str| |00000720| 69 6e 67 73 20 67 6f 20 | 61 62 6f 76 65 20 41 34 |ings go |above A4| |00000730| 0d 09 6d 6f 76 65 2e 6c | 09 44 34 2c 44 30 09 20 |..move.l|.D4,D0. | |00000740| 20 20 20 3b 6c 65 6e 67 | 74 68 20 6f 66 20 73 74 | ;leng|th of st| |00000750| 72 69 6e 67 73 0d 09 64 | 63 2e 77 09 30 78 61 30 |rings..d|c.w.0xa0| |00000760| 32 65 09 20 20 20 20 3b | 62 6c 6f 63 6b 6d 6f 76 |2e. ;|blockmov| |00000770| 65 28 29 0d 0d 09 6d 6f | 76 65 2e 6c 09 41 33 2c |e()...mo|ve.l.A3,| |00000780| 2d 28 41 37 29 20 20 20 | 20 3b 67 65 74 20 72 69 |-(A7) | ;get ri| |00000790| 64 20 6f 66 20 74 68 65 | 20 73 74 72 69 6e 67 20 |d of the| string | |000007a0| 72 65 73 6f 75 72 63 65 | 20 6e 6f 77 0d 09 64 63 |resource| now..dc| |000007b0| 2e 77 09 30 78 61 39 61 | 33 09 20 20 20 20 3b 72 |.w.0xa9a|3. ;r| |000007c0| 65 6c 65 61 73 65 72 65 | 73 6f 75 72 63 65 28 29 |eleasere|source()| |000007d0| 0d 0d 20 20 20 20 6e 6f | 64 61 74 61 32 3a 0d 09 |.. no|data2:..| |000007e0| 73 75 62 71 2e 6c 09 23 | 34 2c 41 37 09 20 20 20 |subq.l.#|4,A7. | |000007f0| 20 3b 47 65 74 20 74 68 | 65 20 69 6e 69 74 20 63 | ;Get th|e init c| |00000800| 6f 64 65 0d 09 6d 6f 76 | 65 2e 6c 09 23 27 49 4e |ode..mov|e.l.#'IN| |00000810| 49 54 27 2c 2d 28 41 37 | 29 0d 09 6d 6f 76 65 09 |IT',-(A7|)..move.| |00000820| 6f 69 64 28 41 36 29 2c | 2d 28 41 37 29 20 20 20 |oid(A6),|-(A7) | |00000830| 3b 69 6e 69 74 20 49 44 | 20 64 65 70 65 6e 64 73 |;init ID| depends| |00000840| 20 6f 6e 20 44 52 56 52 | 20 49 44 0d 09 64 63 2e | on DRVR| ID..dc.| |00000850| 77 09 30 78 61 39 61 30 | 09 20 20 20 20 3b 67 65 |w.0xa9a0|. ;ge| |00000860| 74 72 65 73 6f 75 72 63 | 65 28 29 0d 09 74 73 74 |tresourc|e()..tst| |00000870| 2e 6c 09 28 41 37 29 09 | 20 20 20 20 3b 6d 6f 76 |.l.(A7).| ;mov| |00000880| 65 61 20 64 6f 65 73 6e | 27 74 20 73 65 74 20 63 |ea doesn|'t set c| |00000890| 6f 6e 64 69 74 69 6f 6e | 20 62 69 74 73 0d 09 6d |ondition| bits..m| |000008a0| 6f 76 65 61 2e 6c 20 28 | 41 37 29 2b 2c 41 33 20 |ovea.l (|A7)+,A3 | |000008b0| 20 20 20 3b 68 61 6e 64 | 6c 65 20 74 6f 20 69 6e | ;hand|le to in| |000008c0| 69 74 20 72 65 73 6f 75 | 72 63 65 20 69 6e 20 41 |it resou|rce in A| |000008d0| 33 0d 09 62 65 71 09 6e | 6f 69 6e 69 74 28 50 43 |3..beq.n|oinit(PC| |000008e0| 29 20 20 3b 63 68 65 63 | 6b 20 74 6f 20 73 65 65 |) ;chec|k to see| |000008f0| 20 69 66 20 69 6e 69 74 | 20 72 65 73 6f 75 72 63 | if init| resourc| |00000900| 65 20 65 78 69 73 74 65 | 64 0d 0d 09 6d 6f 76 65 |e existe|d...move| |00000910| 2e 6c 09 28 41 33 29 2c | 41 30 0d 09 6a 73 72 09 |.l.(A3),|A0..jsr.| |00000920| 28 41 30 29 09 20 20 20 | 20 3b 65 78 65 63 75 74 |(A0). | ;execut| |00000930| 65 20 74 68 65 20 69 6e | 69 74 20 63 6f 64 65 0d |e the in|it code.| |00000940| 09 6d 6f 76 65 2e 6c 09 | 41 33 2c 2d 28 41 37 29 |.move.l.|A3,-(A7)| |00000950| 0d 09 64 63 2e 77 09 30 | 78 61 39 61 33 09 20 20 |..dc.w.0|xa9a3. | |00000960| 20 20 3b 72 65 6c 65 61 | 73 65 72 65 73 6f 75 72 | ;relea|seresour| |00000970| 63 65 28 29 0d 0d 20 20 | 20 20 6e 6f 69 6e 69 74 |ce().. | noinit| |00000980| 3a 0d 09 6a 73 72 09 61 | 63 63 6f 70 65 6e 28 50 |:..jsr.a|ccopen(P| |00000990| 43 29 0d 0d 09 6d 6f 76 | 65 2e 6c 09 28 41 37 29 |C)...mov|e.l.(A7)| |000009a0| 2b 2c 20 41 31 0d 09 6d | 6f 76 65 2e 6c 09 44 30 |+, A1..m|ove.l.D0| |000009b0| 2c 2d 28 41 37 29 20 20 | 20 20 3b 73 61 76 65 20 |,-(A7) | ;save | |000009c0| 72 65 73 75 6c 74 20 63 | 6f 64 65 0d 09 62 74 73 |result c|ode..bts| |000009d0| 74 09 23 36 2c 34 28 41 | 31 29 09 3b 20 6c 6f 63 |t.#6,4(A|1).; loc| |000009e0| 6b 65 64 3f 0d 09 62 6e | 65 09 6e 6f 75 6e 6c 6f |ked?..bn|e.nounlo| |000009f0| 63 6b 0d 20 09 74 73 74 | 2e 6c 09 32 30 28 41 31 |ck. .tst|.l.20(A1| |00000a00| 29 0d 20 09 62 65 71 09 | 6e 6f 75 6e 6c 6f 63 6b |). .beq.|nounlock| |00000a10| 0d 09 6d 6f 76 65 2e 6c | 09 32 30 28 41 31 29 2c |..move.l|.20(A1),| |00000a20| 20 41 30 0d 09 64 63 2e | 77 09 30 78 61 30 32 61 | A0..dc.|w.0xa02a| |00000a30| 09 20 20 20 20 3b 68 75 | 6e 6c 6f 63 6b 28 29 20 |. ;hu|nlock() | |00000a40| 74 68 65 20 73 74 6f 72 | 61 67 65 0d 0d 09 6e 6f |the stor|age...no| |00000a50| 75 6e 6c 6f 63 6b 3a 0d | 09 6d 6f 76 65 2e 6c 09 |unlock:.|.move.l.| |00000a60| 28 41 37 29 2b 2c 44 30 | 20 20 20 20 3b 72 65 73 |(A7)+,D0| ;res| |00000a70| 75 6c 74 20 63 6f 64 65 | 0d 09 6d 6f 76 65 2e 6c |ult code|..move.l| |00000a80| 09 28 41 37 29 2b 2c 41 | 30 09 3b 72 65 6d 6f 76 |.(A7)+,A|0.;remov| |00000a90| 65 20 73 65 63 6f 6e 64 | 20 70 61 72 61 6d 65 74 |e second| paramet| |00000aa0| 65 72 0d 09 6d 6f 76 65 | 2e 77 09 44 30 2c 31 36 |er..move|.w.D0,16| |00000ab0| 28 41 30 29 09 3b 66 6f | 72 63 65 20 72 65 73 75 |(A0).;fo|rce resu| |00000ac0| 6c 74 20 63 6f 64 65 0d | 09 6d 6f 76 65 2e 6c 20 |lt code.|.move.l | |00000ad0| 20 28 41 37 29 2b 2c 53 | 41 56 45 41 34 0d 09 6d | (A7)+,S|AVEA4..m| |00000ae0| 6f 76 65 6d 2e 6c 20 28 | 41 37 29 2b 2c 44 31 2d |ovem.l (|A7)+,D1-| |00000af0| 44 35 2f 41 32 2d 41 34 | 20 20 3b 72 65 73 74 6f |D5/A2-A4| ;resto| |00000b00| 72 65 20 72 65 67 69 73 | 74 65 72 73 0d 20 20 20 |re regis|ters. | |00000b10| 20 7d 0d 7d 0d 0d 73 74 | 61 74 69 63 20 5f 63 61 | }.}..st|atic _ca| |00000b20| 6c 6c 61 63 63 28 66 75 | 6e 63 29 0d 69 6e 74 20 |llacc(fu|nc).int | |00000b30| 28 2a 66 75 6e 63 29 28 | 29 3b 0d 7b 0d 20 20 20 |(*func)(|);.{. | |00000b40| 20 61 73 6d 20 7b 0d 09 | 6d 6f 76 65 6d 2e 6c 20 | asm {..|movem.l | |00000b50| 44 31 2d 44 35 2f 41 32 | 2d 41 34 2c 2d 28 41 37 |D1-D5/A2|-A4,-(A7| |00000b60| 29 20 20 3b 73 61 76 65 | 20 72 65 67 69 73 74 65 |) ;save| registe| |00000b70| 72 73 20 74 68 61 74 20 | 6d 69 67 68 74 20 62 65 |rs that |might be| |00000b80| 20 75 73 65 64 0d 09 6d | 6f 76 65 2e 6c 20 20 53 | used..m|ove.l S| |00000b90| 41 56 45 41 34 2c 2d 28 | 41 37 29 0d 0d 09 6d 6f |AVEA4,-(|A7)...mo| |00000ba0| 76 65 2e 6c 09 41 30 2c | 2d 28 41 37 29 20 20 20 |ve.l.A0,|-(A7) | |00000bb0| 20 3b 6c 61 73 74 20 70 | 61 72 61 6d 65 74 65 72 | ;last p|arameter| |00000bc0| 20 70 75 73 68 65 64 20 | 66 69 72 73 74 0d 09 6d | pushed |first..m| |00000bd0| 6f 76 65 2e 6c 09 41 31 | 2c 2d 28 41 37 29 0d 0d |ove.l.A1|,-(A7)..| |00000be0| 09 6d 6f 76 65 2e 6c 09 | 32 30 28 41 31 29 2c 20 |.move.l.|20(A1), | |00000bf0| 41 30 0d 09 64 63 2e 77 | 09 30 78 61 30 32 39 09 |A0..dc.w|.0xa029.| |00000c00| 20 20 20 20 3b 68 6c 6f | 63 6b 28 29 0d 0d 09 6d | ;hlo|ck()...m| |00000c10| 6f 76 65 2e 6c 09 28 41 | 30 29 2c 41 34 20 20 20 |ove.l.(A|0),A4 | |00000c20| 20 20 3b 73 65 74 20 75 | 70 20 41 34 20 62 65 74 | ;set u|p A4 bet| |00000c30| 77 65 65 6e 20 67 6c 6f | 62 61 6c 73 20 61 6e 64 |ween glo|bals and| |00000c40| 20 73 74 72 69 6e 67 73 | 0d 09 64 63 2e 77 09 30 | strings|..dc.w.0| |00000c50| 78 33 61 33 63 09 20 20 | 20 20 3b 6d 6f 76 65 2e |x3a3c. | ;move.| |00000c60| 77 20 23 5f 47 4c 42 4c | 53 49 5a 45 2c 44 35 0d |w #_GLBL|SIZE,D5.| |00000c70| 09 64 63 2e 77 09 5f 47 | 4c 42 4c 53 49 5a 45 0d |.dc.w._G|LBLSIZE.| |00000c80| 09 6e 65 67 09 44 35 09 | 20 20 20 20 3b 5f 47 4c |.neg.D5.| ;_GL| |00000c90| 42 4c 53 49 5a 45 20 69 | 73 20 6e 65 67 61 74 69 |BLSIZE i|s negati| |00000ca0| 76 65 0d 09 61 64 64 61 | 09 44 35 2c 41 34 0d 09 |ve..adda|.D5,A4..| |00000cb0| 6d 6f 76 65 2e 6c 20 20 | 41 34 2c 53 41 56 45 41 |move.l |A4,SAVEA| |00000cc0| 34 0d 0d 09 6d 6f 76 65 | 2e 6c 09 66 75 6e 63 28 |4...move|.l.func(| |00000cd0| 41 36 29 2c 41 30 0d 09 | 6a 73 72 09 28 41 30 29 |A6),A0..|jsr.(A0)| |00000ce0| 09 20 20 20 20 3b 63 61 | 6c 6c 20 75 73 65 72 20 |. ;ca|ll user | |00000cf0| 66 75 6e 63 74 69 6f 6e | 0d 0d 09 6d 6f 76 65 2e |function|...move.| |00000d00| 6c 09 28 41 37 29 2b 2c | 20 41 31 20 20 20 3b 66 |l.(A7)+,| A1 ;f| |00000d10| 69 72 73 74 20 70 61 72 | 61 6d 65 74 65 72 20 77 |irst par|ameter w| |00000d20| 61 73 20 74 68 65 20 64 | 65 76 69 63 65 20 63 6e |as the d|evice cn| |00000d30| 74 72 6c 20 65 6e 74 72 | 79 0d 09 6d 6f 76 65 2e |trl entr|y..move.| |00000d40| 6c 09 44 30 2c 2d 28 41 | 37 29 20 20 20 20 3b 73 |l.D0,-(A|7) ;s| |00000d50| 61 76 65 20 72 65 73 75 | 6c 74 20 63 6f 64 65 0d |ave resu|lt code.| |00000d60| 09 62 74 73 74 09 23 36 | 2c 34 28 41 31 29 09 3b |.btst.#6|,4(A1).;| |00000d70| 20 6c 6f 63 6b 65 64 3f | 0d 09 62 6e 65 09 6e 6f | locked?|..bne.no| |00000d80| 75 6e 6c 6f 63 6b 0d 20 | 09 74 73 74 2e 6c 09 32 |unlock. |.tst.l.2| |00000d90| 30 28 41 31 29 0d 20 09 | 62 65 71 09 6e 6f 75 6e |0(A1). .|beq.noun| |00000da0| 6c 6f 63 6b 0d 09 6d 6f | 76 65 2e 6c 09 32 30 28 |lock..mo|ve.l.20(| |00000db0| 41 31 29 2c 20 41 30 0d | 09 64 63 2e 77 09 30 78 |A1), A0.|.dc.w.0x| |00000dc0| 61 30 32 61 09 20 20 20 | 20 3b 68 75 6e 6c 6f 63 |a02a. | ;hunloc| |00000dd0| 6b 28 29 20 74 68 65 20 | 73 74 6f 72 61 67 65 0d |k() the |storage.| |00000de0| 0d 09 6e 6f 75 6e 6c 6f | 63 6b 3a 0d 09 6d 6f 76 |..nounlo|ck:..mov| |00000df0| 65 2e 6c 09 28 41 37 29 | 2b 2c 44 30 20 20 20 20 |e.l.(A7)|+,D0 | |00000e00| 3b 72 65 73 75 6c 74 20 | 63 6f 64 65 0d 09 6d 6f |;result |code..mo| |00000e10| 76 65 2e 6c 09 28 41 37 | 29 2b 2c 41 30 09 3b 72 |ve.l.(A7|)+,A0.;r| |00000e20| 65 6d 6f 76 65 20 73 65 | 63 6f 6e 64 20 70 61 72 |emove se|cond par| |00000e30| 61 6d 65 74 65 72 0d 09 | 6d 6f 76 65 2e 77 09 44 |ameter..|move.w.D| |00000e40| 30 2c 31 36 28 41 30 29 | 09 3b 66 6f 72 63 65 20 |0,16(A0)|.;force | |00000e50| 72 65 73 75 6c 74 20 63 | 6f 64 65 0d 09 6d 6f 76 |result c|ode..mov| |00000e60| 65 2e 6c 20 20 28 41 37 | 29 2b 2c 53 41 56 45 41 |e.l (A7|)+,SAVEA| |00000e70| 34 0d 09 6d 6f 76 65 6d | 2e 6c 20 28 41 37 29 2b |4..movem|.l (A7)+| |00000e80| 2c 20 44 31 2d 44 35 2f | 41 32 2d 41 34 20 3b 72 |, D1-D5/|A2-A4 ;r| |00000e90| 65 73 74 6f 72 65 20 61 | 6c 6c 20 73 61 76 65 64 |estore a|ll saved| |00000ea0| 20 72 65 67 69 73 74 65 | 72 73 0d 20 20 20 20 7d | registe|rs. }| |00000eb0| 0d 7d 0d 0d 5f 61 63 63 | 70 72 69 6d 65 28 29 0d |.}.._acc|prime().| |00000ec0| 7b 0d 20 20 20 20 5f 63 | 61 6c 6c 61 63 63 28 61 |{. _c|allacc(a| |00000ed0| 63 63 70 72 69 6d 65 29 | 3b 0d 7d 0d 0d 5f 61 63 |ccprime)|;.}.._ac| |00000ee0| 63 63 74 6c 28 29 0d 7b | 0d 20 20 20 20 5f 63 61 |cctl().{|. _ca| |00000ef0| 6c 6c 61 63 63 28 61 63 | 63 63 74 6c 29 3b 0d 7d |llacc(ac|cctl);.}| |00000f00| 0d 0d 5f 61 63 63 73 74 | 61 74 75 73 28 29 0d 7b |.._accst|atus().{| |00000f10| 0d 20 20 20 20 5f 63 61 | 6c 6c 61 63 63 28 61 63 |. _ca|llacc(ac| |00000f20| 63 73 74 61 74 75 73 29 | 3b 0d 7d 0d 0d 5f 61 63 |cstatus)|;.}.._ac| |00000f30| 63 63 6c 6f 73 65 28 29 | 0d 7b 0d 20 20 20 20 61 |cclose()|.{. a| |00000f40| 73 6d 20 7b 0d 09 6d 6f | 76 65 2e 6c 20 20 41 31 |sm {..mo|ve.l A1| |00000f50| 2c 20 2d 28 41 37 29 0d | 20 20 20 20 7d 0d 20 20 |, -(A7).| }. | |00000f60| 20 20 5f 63 61 6c 6c 61 | 63 63 28 61 63 63 63 6c | _calla|cc(acccl| |00000f70| 6f 73 65 29 3b 0d 20 20 | 20 20 61 73 6d 20 7b 0d |ose);. | asm {.| |00000f80| 09 6d 6f 76 65 2e 6c 20 | 20 28 41 37 29 2b 2c 20 |.move.l | (A7)+, | |00000f90| 41 31 0d 09 6d 6f 76 65 | 2e 6c 09 44 30 2c 2d 28 |A1..move|.l.D0,-(| |00000fa0| 41 37 29 20 20 20 20 20 | 3b 73 61 76 65 20 72 65 |A7) |;save re| |00000fb0| 73 75 6c 74 20 63 6f 64 | 65 0d 09 6d 6f 76 65 2e |sult cod|e..move.| |00000fc0| 6c 09 32 30 28 41 31 29 | 2c 41 30 20 20 20 20 3b |l.20(A1)|,A0 ;| |00000fd0| 64 65 61 6c 6c 6f 63 61 | 74 65 20 74 68 65 20 67 |dealloca|te the g| |00000fe0| 6c 6f 62 61 6c 20 61 6e | 64 20 73 74 72 69 6e 67 |lobal an|d string| |00000ff0| 20 73 70 61 63 65 0d 09 | 64 63 2e 77 09 30 78 61 | space..|dc.w.0xa| |00001000| 30 32 33 0d 09 63 6c 72 | 2e 6c 09 32 30 28 41 31 |023..clr|.l.20(A1| |00001010| 29 09 20 20 20 20 20 3b | 72 65 6d 6f 76 65 20 66 |). ;|remove f| |00001020| 72 6f 6d 20 64 65 76 69 | 63 65 20 63 6f 6e 74 72 |rom devi|ce contr| |00001030| 6f 6c 20 65 6e 74 72 79 | 20 74 6f 6f 0d 09 6d 6f |ol entry| too..mo| |00001040| 76 65 2e 6c 09 28 41 37 | 29 2b 2c 44 30 20 20 20 |ve.l.(A7|)+,D0 | |00001050| 20 20 3b 72 65 73 74 6f | 72 65 20 72 65 73 75 6c | ;resto|re resul| |00001060| 74 20 63 6f 64 65 0d 20 | 20 20 20 7d 0d 7d 0d 00 |t code. | }.}..| |00001070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001080| 00 00 01 00 00 00 01 1e | 00 00 00 1e 00 00 02 66 |........|.......f| |00001090| 6c 65 3a 20 6f 73 75 74 | 69 6c 73 2e 43 0d 47 6c |le: osut|ils.C.Gl| |000010a0| 6f 62 61 6c 20 34 34 36 | 2f 33 32 30 30 30 20 4c |obal 446|/32000 L| |000010b0| 05 61 63 63 2e 63 02 00 | 00 00 54 45 58 54 45 44 |.acc.c..|..TEXTED| |000010c0| 49 54 01 00 00 00 00 43 | 00 00 00 01 ab 66 00 00 |IT.....C|.....f..| |000010d0| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 43 |..TEXTED|IT.....C| |000010e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000010f0| 00 00 9a 04 b7 97 00 00 | 0f ef 00 00 03 84 46 6c |........|......Fl| |00001100| 6f 61 74 20 30 2f 33 32 | 30 30 30 2c 44 32 0d 09 |oat 0/32|000,D2..| |00001110| 45 58 54 2e 4c 09 44 32 | 0d 09 50 45 41 09 70 61 |EXT.L.D2|..PEA.pa| |00001120| 74 28 41 35 29 0d 09 4d | 4f 56 45 2e 4c 09 28 53 |t(A5)..M|OVE.L.(S| |00001130| 50 29 2b 2c 44 30 0d 09 | 50 45 41 09 2d 31 30 35 |P)+,D0..|PEA.-105| |00001140| 32 28 41 36 29 0d 09 4d | 4f 56 45 2e 4c 09 28 53 |2(A6)..M|OVE.L.(S| |00001150| 50 29 2b 2c 44 31 0d 09 | 50 45 41 09 2d 31 30 35 |P)+,D1..|PEA.-105| |00001160| 36 28 41 36 29 0d 09 4d | 4f 56 45 2e 4c 09 28 53 |6(A6)..M|OVE.L.(S| |00001170| 50 29 2b 2c 44 33 0d 09 | 4a 53 52 09 73 65 61 72 |P)+,D3..|JSR.sear| |00001180| 00 00 00 04 02 09 04 01 | 00 00 00 0a 00 09 06 4d |........|.......M| |00001190| 6f 6e 61 63 6f 00 00 00 | 00 04 00 06 00 08 00 00 |onaco...|........| |000011a0| 01 00 00 00 01 1e 00 00 | 00 1e 00 00 02 66 00 00 |........|.....f..| |000011b0| cc 1c 00 98 00 00 00 1c | 00 5a 00 02 45 4f 50 54 |........|.Z..EOPT| |000011c0| 00 00 00 1a 45 46 4e 54 | 00 00 00 26 45 54 41 42 |....EFNT|...&ETAB| |000011d0| 00 00 00 32 03 ee 00 00 | 00 00 00 00 00 00 00 00 |...2....|........| |000011e0| 03 eb 00 0c 00 00 00 08 | 00 01 66 a6 03 ec 01 0c |........|..f.....| |000011f0| 00 00 00 16 00 01 66 a2 | 0b 65 64 69 74 6f 72 20 |......f.|.editor | |00001200| 69 6e 66 6f ff fb 42 4a | ff ff ff ff 00 40 01 aa |info..BJ|.....@..| |00001210| 00 40 01 ac 00 40 01 ae | 00 40 01 b0 00 40 01 b2 |.@...@..|.@...@..| |00001220| 00 40 01 b4 00 40 01 b6 | 00 40 01 b8 00 40 10 18 |.@...@..|.@...@..| |00001230| 00 40 01 bc 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001240| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001250| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001260| 00 40 01 be 00 40 01 be | 00 40 0b 94 00 40 0b bc |.@...@..|.@...@..| |00001270| 00 40 0b ec 00 40 01 c0 | 00 40 01 c0 00 40 01 c0 |.@...@..|.@...@..| |00001280| 00 40 01 c0 00 00 fb a6 | 00 00 f0 0e 00 00 fa 9a |.@......|........| |00001290| 00 01 06 3c 00 00 f8 e8 | 00 40 01 be 00 00 fa ae |...<....|.@......| |000012a0| 00 01 12 ae 00 00 f3 20 | 00 01 02 10 00 40 01 be |....... |.....@..| |000012b0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000012c0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000012d0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000012e0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000012f0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001300| 00 40 01 be ff fb 42 4a | ff ff ff ff 00 40 01 aa |.@....BJ|.....@..| |00001310| 00 40 01 ac 00 40 01 ae | 00 40 01 b0 00 40 01 b2 |.@...@..|.@...@..| |00001320| 00 40 01 b4 00 40 01 b6 | 00 40 01 b8 00 40 10 18 |.@...@..|.@...@..| |00001330| 00 40 01 bc 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001340| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001350| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001360| 00 40 01 be 00 40 01 be | 00 40 0b 94 00 40 0b bc |.@...@..|.@...@..| |00001370| 00 40 0b ec 00 40 01 c0 | 00 40 01 c0 00 40 01 c0 |.@...@..|.@...@..| |00001380| 00 40 01 c0 00 00 fb a6 | 00 00 f0 0e 00 00 fa 9a |.@......|........| |00001390| 00 01 06 3c 00 00 f8 e8 | 00 40 01 be 00 00 fa ae |...<....|.@......| |000013a0| 00 01 12 ae 00 00 f3 20 | 00 01 02 10 00 40 01 be |....... |.....@..| |000013b0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000013c0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000013d0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000013e0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |000013f0| 00 40 01 be 00 40 01 be | 00 40 01 be 00 40 01 be |.@...@..|.@...@..| |00001400| 00 40 01 be 00 00 00 00 | 00 00 00 00 00 00 00 00 |.@......|........| |00001410| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001420| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001430| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001440| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001450| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00001470| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+